package net.minecraft.realms;

import com.mojang.util.UUIDTypeAdapter;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiScreenRealmsProxy;
import net.minecraft.client.resources.DefaultPlayerSkin;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;

public class RealmsScreen {
	public static final int SKIN_HEAD_U = 8;
	public static final int SKIN_HEAD_V = 8;
	public static final int SKIN_HEAD_WIDTH = 8;
	public static final int SKIN_HEAD_HEIGHT = 8;
	public static final int SKIN_HAT_U = 40;
	public static final int SKIN_HAT_V = 8;
	public static final int SKIN_HAT_WIDTH = 8;
	public static final int SKIN_HAT_HEIGHT = 8;
	public static final int SKIN_TEX_WIDTH = 64;
	public static final int SKIN_TEX_HEIGHT = 64;
	protected Minecraft minecraft;
	public int width;
	public int height;
	private GuiScreenRealmsProxy proxy = new GuiScreenRealmsProxy(this);

	public GuiScreenRealmsProxy getProxy() {
		return this.proxy;
	}

	public void init() {
	}

	public void init(Minecraft p_init_1_, int p_init_2_, int p_init_3_) {
	}

	public void drawCenteredString(String p_drawCenteredString_1_, int p_drawCenteredString_2_,
			int p_drawCenteredString_3_, int p_drawCenteredString_4_) {
		this.proxy.func_154325_a(p_drawCenteredString_1_, p_drawCenteredString_2_, p_drawCenteredString_3_,
				p_drawCenteredString_4_);
	}

	public void drawString(String p_drawString_1_, int p_drawString_2_, int p_drawString_3_, int p_drawString_4_) {
		this.proxy.func_154322_b(p_drawString_1_, p_drawString_2_, p_drawString_3_, p_drawString_4_);
	}

	public void blit(int p_blit_1_, int p_blit_2_, int p_blit_3_, int p_blit_4_, int p_blit_5_, int p_blit_6_) {
		this.proxy.drawTexturedModalRect(p_blit_1_, p_blit_2_, p_blit_3_, p_blit_4_, p_blit_5_, p_blit_6_);
	}

	public static void blit(int p_blit_0_, int p_blit_1_, float p_blit_2_, float p_blit_3_, int p_blit_4_,
			int p_blit_5_, int p_blit_6_, int p_blit_7_, float p_blit_8_, float p_blit_9_) {
		Gui.drawScaledCustomSizeModalRect(p_blit_0_, p_blit_1_, p_blit_2_, p_blit_3_, p_blit_4_, p_blit_5_, p_blit_6_,
				p_blit_7_, p_blit_8_, p_blit_9_);
	}

	public static void blit(int p_blit_0_, int p_blit_1_, float p_blit_2_, float p_blit_3_, int p_blit_4_,
			int p_blit_5_, float p_blit_6_, float p_blit_7_) {
		Gui.drawModalRectWithCustomSizedTexture(p_blit_0_, p_blit_1_, p_blit_2_, p_blit_3_, p_blit_4_, p_blit_5_,
				p_blit_6_, p_blit_7_);
	}

	public void fillGradient(int p_fillGradient_1_, int p_fillGradient_2_, int p_fillGradient_3_, int p_fillGradient_4_,
			int p_fillGradient_5_, int p_fillGradient_6_) {
		this.proxy.drawGradientRect(p_fillGradient_1_, p_fillGradient_2_, p_fillGradient_3_, p_fillGradient_4_,
				p_fillGradient_5_, p_fillGradient_6_);
	}

	public void renderBackground() {
		this.proxy.drawDefaultBackground();
	}

	public boolean isPauseScreen() {
		return this.proxy.doesGuiPauseGame();
	}

	public void renderBackground(int p_renderBackground_1_) {
		this.proxy.drawWorldBackground(p_renderBackground_1_);
	}

	public void render(int p_render_1_, int p_render_2_, float p_render_3_) {
		for (int i = 0; i < this.proxy.func_154320_j().size(); ++i) {
			((RealmsButton) this.proxy.func_154320_j().get(i)).render(p_render_1_, p_render_2_);
		}
	}

	public void renderTooltip(ItemStack p_renderTooltip_1_, int p_renderTooltip_2_, int p_renderTooltip_3_) {
		this.proxy.renderToolTip(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_);
	}

	public void renderTooltip(String p_renderTooltip_1_, int p_renderTooltip_2_, int p_renderTooltip_3_) {
		this.proxy.drawCreativeTabHoveringText(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_);
	}

	public void renderTooltip(List<String> p_renderTooltip_1_, int p_renderTooltip_2_, int p_renderTooltip_3_) {
		this.proxy.drawHoveringText(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_);
	}

	public static void bindFace(String p_bindFace_0_, String p_bindFace_1_) {
		ResourceLocation resourcelocation = AbstractClientPlayer.getLocationSkin(p_bindFace_1_);

		if (resourcelocation == null) {
			resourcelocation = DefaultPlayerSkin.getDefaultSkin(UUIDTypeAdapter.fromString(p_bindFace_0_));
		}

		AbstractClientPlayer.getDownloadImageSkin(resourcelocation, p_bindFace_1_);
		Minecraft.getMinecraft().getTextureManager().bindTexture(resourcelocation);
	}

	public static void bind(String p_bind_0_) {
		ResourceLocation resourcelocation = new ResourceLocation(p_bind_0_);
		Minecraft.getMinecraft().getTextureManager().bindTexture(resourcelocation);
	}

	public void tick() {
	}

	public int width() {
		return this.proxy.width;
	}

	public int height() {
		return this.proxy.height;
	}

	public int fontLineHeight() {
		return this.proxy.func_154329_h();
	}

	public int fontWidth(String p_fontWidth_1_) {
		return this.proxy.func_154326_c(p_fontWidth_1_);
	}

	public void fontDrawShadow(String p_fontDrawShadow_1_, int p_fontDrawShadow_2_, int p_fontDrawShadow_3_,
			int p_fontDrawShadow_4_) {
		this.proxy.func_154319_c(p_fontDrawShadow_1_, p_fontDrawShadow_2_, p_fontDrawShadow_3_, p_fontDrawShadow_4_);
	}

	public List<String> fontSplit(String p_fontSplit_1_, int p_fontSplit_2_) {
		return this.proxy.func_154323_a(p_fontSplit_1_, p_fontSplit_2_);
	}

	public void buttonClicked(RealmsButton p_buttonClicked_1_) {
	}

	public static RealmsButton newButton(int p_newButton_0_, int p_newButton_1_, int p_newButton_2_,
			String p_newButton_3_) {
		return new RealmsButton(p_newButton_0_, p_newButton_1_, p_newButton_2_, p_newButton_3_);
	}

	public static RealmsButton newButton(int p_newButton_0_, int p_newButton_1_, int p_newButton_2_, int p_newButton_3_,
			int p_newButton_4_, String p_newButton_5_) {
		return new RealmsButton(p_newButton_0_, p_newButton_1_, p_newButton_2_, p_newButton_3_, p_newButton_4_,
				p_newButton_5_);
	}

	public void buttonsClear() {
		this.proxy.func_154324_i();
	}

	public void buttonsAdd(RealmsButton p_buttonsAdd_1_) {
		this.proxy.func_154327_a(p_buttonsAdd_1_);
	}

	public List<RealmsButton> buttons() {
		return this.proxy.func_154320_j();
	}

	public void buttonsRemove(RealmsButton p_buttonsRemove_1_) {
		this.proxy.func_154328_b(p_buttonsRemove_1_);
	}

	public RealmsEditBox newEditBox(int p_newEditBox_1_, int p_newEditBox_2_, int p_newEditBox_3_, int p_newEditBox_4_,
			int p_newEditBox_5_) {
		return new RealmsEditBox(p_newEditBox_1_, p_newEditBox_2_, p_newEditBox_3_, p_newEditBox_4_, p_newEditBox_5_);
	}

	public void mouseClicked(int p_mouseClicked_1_, int p_mouseClicked_2_, int p_mouseClicked_3_) {
	}

	public void mouseEvent() {
	}

	public void keyboardEvent() {
	}

	public void mouseReleased(int p_mouseReleased_1_, int p_mouseReleased_2_, int p_mouseReleased_3_) {
	}

	public void mouseDragged(int p_mouseDragged_1_, int p_mouseDragged_2_, int p_mouseDragged_3_,
			long p_mouseDragged_4_) {
	}

	public void keyPressed(char p_keyPressed_1_, int p_keyPressed_2_) {
	}

	public void confirmResult(boolean p_confirmResult_1_, int p_confirmResult_2_) {
	}

	public static String getLocalizedString(String p_getLocalizedString_0_) {
		return I18n.format(p_getLocalizedString_0_, new Object[0]);
	}

	public static String getLocalizedString(String p_getLocalizedString_0_, Object... p_getLocalizedString_1_) {
		return I18n.format(p_getLocalizedString_0_, p_getLocalizedString_1_);
	}

	public RealmsAnvilLevelStorageSource getLevelStorageSource() {
		return new RealmsAnvilLevelStorageSource(Minecraft.getMinecraft().getSaveLoader());
	}

	public void removed() {
	}
}
